#ifndef TRANSACTION_H
#define TRANSACTION_H

#include <string>
#include <vector>
#include <memory>
#include "Operation.h"
#include "../database/Db.h"
#include <shared_mutex>

class Transaction {
public:
    Transaction();
    void addOperation(const Operation& operation);
    std::vector<Operation> getOperations() const;
    /** void execute(Db& db, std::vector<std::shared_mutex>& rowReadLocks, std::vector<std::shared_mutex>& rowWriteLocks); */

private:
    // std::string transactionId;
    std::unique_ptr<std::vector<Operation>> operations;
};

#endif //TRANSACTION_H